Repository navigation
[release/13.6] Recover ambiguous DCP creates with configurable timeouts - #20868
Jose Perez Rodriguez (joperezr) merged 2 commits into
Conversation
Confirm timed-out creates before retrying the same named object, bound create recovery, and share readiness-aware request deadlines across client setup and API operations. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 20868Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 20868" |
This comment has been minimized.
This comment has been minimized.
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
I think the tests are failing because we still need to rev the release to 13.6.2 now that 13.6.1 has shipped. The tests are failing due to an upgrade prompt since we're building 13.6.1 prerelease, but 13.6.1 stable is out. |
Preserve configurable DCP timeout recovery alongside the release branch's HTTP/2 watch fixes. Adapt recovery tests to the shared HTTPS fixture and retain option-based timeout configuration. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Tests selector50 / 99 PR test projects · 4 PR jobs, from 5 changed files. Selected PR test projects (50 / 99)
Selected PR jobs (4)
How these were chosen — grouped by what changed
🔧 show 45
🧪 📦 affected project 🧪 Job reasons
Selection computed for commit |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
a1c795d
into
release/13.6
Updated [Aspire.Hosting.JavaScript](https://github.com/microsoft/aspire) from 13.6.3 to 13.6.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Hosting.JavaScript's releases](https://github.com/microsoft/aspire/releases)._ ## 13.6.4 ## What's New in Aspire 13.6.4 Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix. ### 🐛 Fixes - 🖥️ **Resources could fail to start after a DCP create request timed out** — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature `FailedToStart` state when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured through `DcpPublisher:KubernetesApiTimeout`, `DcpPublisher:KubernetesInitializationAdditionalTimeout`, and `DcpPublisher:KubernetesCreateRecoveryTimeout`. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes [#20691](microsoft/aspire#20691). ([#20868](microsoft/aspire#20868), backport of [#20752](microsoft/aspire#20752), @danegsta) - ☁️ **TypeScript AppHosts could fail to publish parameterized Azure enum properties** — Assigning a `bicep().parameter(...)` expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. ([#20767](microsoft/aspire#20767), backport of [#20557](microsoft/aspire#20557), @sebastienros) - 🔒 **CLI diagnostic logs now use owner-only permissions on Unix** — Log files are restricted to owner read/write access (`0600`), including reused files, and the dedicated Aspire logs directory uses owner-only access (`0700`), repairing existing permissions when needed. Newly created custom log directories also use `0700`; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. ([#21282](microsoft/aspire#21282), backport of [#21276](microsoft/aspire#21276), @mitchdenny) --- *Full Changelog: [v13.6.3...v13.6.4](microsoft/aspire@v13.6.3...v13.6.4)* *Full commit: [c89352703f78ae46de90fbf751ed8b52b77b89bf](microsoft/aspire@c89352703f78ae46de90fbf751ed8b52b77b89bf)* Commits viewable in [compare view](microsoft/aspire@v13.6.3...v13.6.4). </details> Updated [Aspire.Hosting.PostgreSQL](https://github.com/microsoft/aspire) from 13.6.3 to 13.6.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Hosting.PostgreSQL's releases](https://github.com/microsoft/aspire/releases)._ ## 13.6.4 ## What's New in Aspire 13.6.4 Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix. ### 🐛 Fixes - 🖥️ **Resources could fail to start after a DCP create request timed out** — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature `FailedToStart` state when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured through `DcpPublisher:KubernetesApiTimeout`, `DcpPublisher:KubernetesInitializationAdditionalTimeout`, and `DcpPublisher:KubernetesCreateRecoveryTimeout`. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes [#20691](microsoft/aspire#20691). ([#20868](microsoft/aspire#20868), backport of [#20752](microsoft/aspire#20752), @danegsta) - ☁️ **TypeScript AppHosts could fail to publish parameterized Azure enum properties** — Assigning a `bicep().parameter(...)` expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. ([#20767](microsoft/aspire#20767), backport of [#20557](microsoft/aspire#20557), @sebastienros) - 🔒 **CLI diagnostic logs now use owner-only permissions on Unix** — Log files are restricted to owner read/write access (`0600`), including reused files, and the dedicated Aspire logs directory uses owner-only access (`0700`), repairing existing permissions when needed. Newly created custom log directories also use `0700`; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. ([#21282](microsoft/aspire#21282), backport of [#21276](microsoft/aspire#21276), @mitchdenny) --- *Full Changelog: [v13.6.3...v13.6.4](microsoft/aspire@v13.6.3...v13.6.4)* *Full commit: [c89352703f78ae46de90fbf751ed8b52b77b89bf](microsoft/aspire@c89352703f78ae46de90fbf751ed8b52b77b89bf)* Commits viewable in [compare view](microsoft/aspire@v13.6.3...v13.6.4). </details> Updated [Aspire.Hosting.Testing](https://github.com/microsoft/aspire) from 13.6.3 to 13.6.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Hosting.Testing's releases](https://github.com/microsoft/aspire/releases)._ ## 13.6.4 ## What's New in Aspire 13.6.4 Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix. ### 🐛 Fixes - 🖥️ **Resources could fail to start after a DCP create request timed out** — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature `FailedToStart` state when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured through `DcpPublisher:KubernetesApiTimeout`, `DcpPublisher:KubernetesInitializationAdditionalTimeout`, and `DcpPublisher:KubernetesCreateRecoveryTimeout`. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes [#20691](microsoft/aspire#20691). ([#20868](microsoft/aspire#20868), backport of [#20752](microsoft/aspire#20752), @danegsta) - ☁️ **TypeScript AppHosts could fail to publish parameterized Azure enum properties** — Assigning a `bicep().parameter(...)` expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. ([#20767](microsoft/aspire#20767), backport of [#20557](microsoft/aspire#20557), @sebastienros) - 🔒 **CLI diagnostic logs now use owner-only permissions on Unix** — Log files are restricted to owner read/write access (`0600`), including reused files, and the dedicated Aspire logs directory uses owner-only access (`0700`), repairing existing permissions when needed. Newly created custom log directories also use `0700`; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. ([#21282](microsoft/aspire#21282), backport of [#21276](microsoft/aspire#21276), @mitchdenny) --- *Full Changelog: [v13.6.3...v13.6.4](microsoft/aspire@v13.6.3...v13.6.4)* *Full commit: [c89352703f78ae46de90fbf751ed8b52b77b89bf](microsoft/aspire@c89352703f78ae46de90fbf751ed8b52b77b89bf)* Commits viewable in [compare view](microsoft/aspire@v13.6.3...v13.6.4). </details> Updated [Aspire.Hosting.Valkey](https://github.com/microsoft/aspire) from 13.6.3 to 13.6.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Hosting.Valkey's releases](https://github.com/microsoft/aspire/releases)._ ## 13.6.4 ## What's New in Aspire 13.6.4 Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix. ### 🐛 Fixes - 🖥️ **Resources could fail to start after a DCP create request timed out** — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature `FailedToStart` state when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured through `DcpPublisher:KubernetesApiTimeout`, `DcpPublisher:KubernetesInitializationAdditionalTimeout`, and `DcpPublisher:KubernetesCreateRecoveryTimeout`. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes [#20691](microsoft/aspire#20691). ([#20868](microsoft/aspire#20868), backport of [#20752](microsoft/aspire#20752), @danegsta) - ☁️ **TypeScript AppHosts could fail to publish parameterized Azure enum properties** — Assigning a `bicep().parameter(...)` expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. ([#20767](microsoft/aspire#20767), backport of [#20557](microsoft/aspire#20557), @sebastienros) - 🔒 **CLI diagnostic logs now use owner-only permissions on Unix** — Log files are restricted to owner read/write access (`0600`), including reused files, and the dedicated Aspire logs directory uses owner-only access (`0700`), repairing existing permissions when needed. Newly created custom log directories also use `0700`; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. ([#21282](microsoft/aspire#21282), backport of [#21276](microsoft/aspire#21276), @mitchdenny) --- *Full Changelog: [v13.6.3...v13.6.4](microsoft/aspire@v13.6.3...v13.6.4)* *Full commit: [c89352703f78ae46de90fbf751ed8b52b77b89bf](microsoft/aspire@c89352703f78ae46de90fbf751ed8b52b77b89bf)* Commits viewable in [compare view](microsoft/aspire@v13.6.3...v13.6.4). </details> Pinned [Aspire.Npgsql.EntityFrameworkCore.PostgreSQL](https://github.com/microsoft/aspire) at 13.6.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Npgsql.EntityFrameworkCore.PostgreSQL's releases](https://github.com/microsoft/aspire/releases)._ ## 13.6.4 ## What's New in Aspire 13.6.4 Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix. ### 🐛 Fixes - 🖥️ **Resources could fail to start after a DCP create request timed out** — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature `FailedToStart` state when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured through `DcpPublisher:KubernetesApiTimeout`, `DcpPublisher:KubernetesInitializationAdditionalTimeout`, and `DcpPublisher:KubernetesCreateRecoveryTimeout`. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes [#20691](microsoft/aspire#20691). ([#20868](microsoft/aspire#20868), backport of [#20752](microsoft/aspire#20752), @danegsta) - ☁️ **TypeScript AppHosts could fail to publish parameterized Azure enum properties** — Assigning a `bicep().parameter(...)` expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. ([#20767](microsoft/aspire#20767), backport of [#20557](microsoft/aspire#20557), @sebastienros) - 🔒 **CLI diagnostic logs now use owner-only permissions on Unix** — Log files are restricted to owner read/write access (`0600`), including reused files, and the dedicated Aspire logs directory uses owner-only access (`0700`), repairing existing permissions when needed. Newly created custom log directories also use `0700`; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. ([#21282](microsoft/aspire#21282), backport of [#21276](microsoft/aspire#21276), @mitchdenny) --- *Full Changelog: [v13.6.3...v13.6.4](microsoft/aspire@v13.6.3...v13.6.4)* *Full commit: [c89352703f78ae46de90fbf751ed8b52b77b89bf](microsoft/aspire@c89352703f78ae46de90fbf751ed8b52b77b89bf)* Commits viewable in [compare view](microsoft/aspire@v13.6.3...v13.6.4). </details> Pinned [Aspire.StackExchange.Redis](https://github.com/microsoft/aspire) at 13.6.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.StackExchange.Redis's releases](https://github.com/microsoft/aspire/releases)._ ## 13.6.4 ## What's New in Aspire 13.6.4 Patch release for Aspire 13.6 that improves resource startup reliability, fixes Azure publishing with parameterized enum properties in TypeScript AppHosts, and tightens CLI diagnostic log permissions on Unix. ### 🐛 Fixes - 🖥️ **Resources could fail to start after a DCP create request timed out** — AppHost now checks whether a resource was created before retrying a timed-out or HTTP 504 request, avoiding a premature `FailedToStart` state when DCP completed the operation. API operations default to a 40-second timeout with an additional 20-second allowance before the first successful operation, and resource creation has a two-minute recovery budget. These limits can be configured through `DcpPublisher:KubernetesApiTimeout`, `DcpPublisher:KubernetesInitializationAdditionalTimeout`, and `DcpPublisher:KubernetesCreateRecoveryTimeout`. Established watch and log streams are not limited by these operation timeouts. Addresses startup timeouts reported in 13.6. Fixes [#20691](microsoft/aspire#20691). ([#20868](microsoft/aspire#20868), backport of [#20752](microsoft/aspire#20752), @danegsta) - ☁️ **TypeScript AppHosts could fail to publish parameterized Azure enum properties** — Assigning a `bicep().parameter(...)` expression to an enum-valued provisioning property, such as an Azure Storage SKU name, now works instead of failing with a type-assignment error. Type checking for literal values and incompatible expression types is preserved. Fixes a scenario introduced with the Azure provisioning proxy feature in 13.6. ([#20767](microsoft/aspire#20767), backport of [#20557](microsoft/aspire#20557), @sebastienros) - 🔒 **CLI diagnostic logs now use owner-only permissions on Unix** — Log files are restricted to owner read/write access (`0600`), including reused files, and the dedicated Aspire logs directory uses owner-only access (`0700`), repairing existing permissions when needed. Newly created custom log directories also use `0700`; existing custom parent directories and Windows permission behavior are unchanged. Diagnostic logs can contain sensitive data, including dashboard login URLs, so review them before sharing. ([#21282](microsoft/aspire#21282), backport of [#21276](microsoft/aspire#21276), @mitchdenny) --- *Full Changelog: [v13.6.3...v13.6.4](microsoft/aspire@v13.6.3...v13.6.4)* *Full commit: [c89352703f78ae46de90fbf751ed8b52b77b89bf](microsoft/aspire@c89352703f78ae46de90fbf751ed8b52b77b89bf)* Commits viewable in [compare view](microsoft/aspire@v13.6.3...v13.6.4). </details> Updated [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer) from 3.0.316 to 3.0.317. <details> <summary>Release notes</summary> _Sourced from [Meziantou.Analyzer's releases](https://github.com/meziantou/Meziantou.Analyzer/releases)._ ## 3.0.317 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.317> ## What's Changed * Do not register code fixes that do not change the code (MA0146, MA0177, MA0204) by @meziantou in meziantou/Meziantou.Analyzer#1744 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.316...3.0.317 Commits viewable in [compare view](meziantou/Meziantou.Analyzer@3.0.316...3.0.317). </details> Pinned [Microsoft.AspNetCore.Identity.EntityFrameworkCore](https://github.com/dotnet/dotnet) at 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.Identity.EntityFrameworkCore's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Pinned [Microsoft.AspNetCore.OpenApi](https://github.com/dotnet/dotnet) at 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.OpenApi's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.AspNetCore.SignalR.Client](https://github.com/dotnet/dotnet) from 10.0.13 to 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.SignalR.Client's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.EntityFrameworkCore.Design](https://github.com/dotnet/dotnet) from 10.0.13 to 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.EntityFrameworkCore.Design's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.EntityFrameworkCore.InMemory](https://github.com/dotnet/dotnet) from 10.0.13 to 10.0.14. <details> <summary>Release notes</summary> _Sourced from [Microsoft.EntityFrameworkCore.InMemory's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Backport of #20752 to release/13.6
/cc David Negstad (@danegsta)
Customer Impact
Adds retry and configurable timeout for DCP kubernetes API connections to mitigate timeouts some users have been seeing in 13.6.
Testing
Manual and automated testing
Risk
Low
Regression?
Yes. The issue was first reported with 13.6.